/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.playground.core.service.ruler;

import com.playground.core.entity.Player;
import com.playground.core.entity.boardgame.BoardGame;
import com.playground.core.entity.boardgame.chesslikegame.ChessLikeSquare;
import com.playground.core.entity.boardgame.chesslikegame.checkers.CheckersPiece;
import java.util.List;
import java.util.Map;

/**
 *
 * @author Tiago Peres
 */
public interface ChessLikeGameRuler extends BoardGameRuler{
    /**
     * Calculates the pieces owned by the given player that are allowed to be
     * moved and the squares that could receive them. In the case where a jump 
     * is possible, for example, the only pieces allowed to be moved are the 
     * ones that could make a jump.
     * 
     * @param game the game to apply te rules
     * @param player
     * @return a map with all the pieces allowed to be moved and their respective possible moves
     */
    Map<CheckersPiece, List<ChessLikeSquare>> getAllowedPieces(BoardGame game, Player player);
}
